import axios from '@/api/fetch';
//import * as types from './types';
import SERVER from '@/api/server';


//旧件入库
//旧件入库 - 主页面查询
export const getListByPage = params => axios.post(`${SERVER.CLAIMFAC}/rPReturnJf/getListByPage`,  params );

export const getClaimListByPage = params => axios.post(`${SERVER.CLAIMFAC}/rPReturnJf/claim/getListByPage`,  params );
export const getPartListByClaimId = params => axios.post(`${SERVER.CLAIMFAC}/rPReturnJf/part/list`,  params );
//一般车辆配件类型保修期编辑弹窗的保存
export const jfSaveAdd = params => axios.post(`${SERVER.CLAIMFAC}/rPReturnJf/saveAdd`,  params );
export const jfEdit = params => axios.post(`${SERVER.CLAIMFAC}/rPReturnJf/edit`,  params );
export const voidJfById = params => axios.post(`${SERVER.CLAIMFAC}/rPReturnJf/voidJf`,  params );
export const auditJf = params => axios.post(`${SERVER.CLAIMFAC}/rPReturnJf/auditJf`,  params );
//通过ID查
export const selectDetail = params => axios.get(`${SERVER.CLAIMFAC}/rPReturnJf/selectById/${params.id}`);
//新增的保存
export const newSave = params => axios.post(`${SERVER.CLAIMFAC}/rPReturn/saveOne`,  params );
//批量启动
export const piliangqiyong = data => axios.post(`${SERVER.CLAIMFAC}/rPReturn/updateEnableByIds`,  null ,{params : data} );
//批量停用
export const piliangtingyong = data => axios.post(`${SERVER.CLAIMFAC}/rPReturn/updateEnableByIds`,  null ,{params : data} );
//Excel导出
// export const excelExport = params => axios.get(`${SERVER.CLAIMFAC}/rPReturnWhMp/getListForExport`, params);
// export const excelExport = params => axios.post(`${SERVER.CLAIMFAC}/rPReturnWhMp/getListForExport`,  params );

// 选择旧件列表
export const getDestoryListByPage = params => axios.post(`${SERVER.CLAIMFAC}/rPCmsClaim/getDestoryListByPage`,  params );

export const getReturnListByPage = params => axios.post(`${SERVER.CLAIMFAC}/rPCmsClaim/getReturnListByPage`,  params );
//车型取得
export const getModelList = params => axios.post(`${SERVER.CLAIMDEALER}/tmModel/getModelList`, params );
//通过ID查
export const selectById = params => axios.get(`${SERVER.CLAIMFAC}/rPReturn/selectById/${params.id}`);

export const excelExport = params => {
  return axios({
    url:`${SERVER.CLAIMFAC}/rPReturn/getListForExport`,
    method: 'get',
    params: params,
    responseType: 'blob'
  });
};

//一般车辆配件类型保修期编辑弹窗的保存
export const editSave = params => axios.post(`${SERVER.CLAIMFAC}/rPReturn/updateByPtId`,  params );

//签收
export const sign = params => axios.post(`${SERVER.CLAIMFAC}/rPReturn/sign`,  params );
//导出
export const getListForExportNew = (params) => axios.post(`${SERVER.CLAIMFAC}/rPReturn/getPreReturnListForSignExport`, params, {
  responseType: 'blob'
});
//导出
export const getListForExport = params =>
  axios({//用axios发送post请求
    method: 'post',
    url: `${SERVER.CLAIMFAC}/rPReturn/getPreReturnListForSignExport`,//请求地址
    responseType: 'blob',//表明返回服务器返回的数据类型
    headers: {'Content-Type': 'application/json'},
    data: params
  })
    .then(res => {//处理返回的文件流
      const blob = new Blob([res.data]);//newBlob([res])中不加data就会返回下图中[objeceobjece]内容（少取一层）
      if (res.headers['content-disposition']) {
        const fileName = decodeURI(res.headers['content-disposition'].split(';')[1].split('=')[1]); //这里可以自定义名称，发现设置xlsx文件类型下载后打开会提示下面图-1的无效报错,所以我用了xls格式
        const elink = document.createElement('a');
        elink.download = fileName;
        elink.style.display = 'none';
        elink.href = URL.createObjectURL(blob);
        document.body.appendChild(elink);
        elink.click();
        URL.revokeObjectURL(elink.href);//释放URL对象
        document.body.removeChild(elink);
      }
    })
//下载中心导出
export const exporturl = params => axios.post(`/api/cmscloud.excel/downloadExcel/exportExcel/${params.CODE}`, params);
//批量通过
export const piLiangTongGuo = params => axios.post(`${SERVER.CLAIMFAC}/rPReturn/dealInStockList`, params);

//批量不合格
export const piLiangBuHeGe = params => axios.post(`${SERVER.CLAIMFAC}/rPReturn/batchNoqualified`, params);

//批量驳回
export const piLiangBuoHui = data => axios.post(`${SERVER.CLAIMFAC}/rPReturn/updateEnableByIds`,  null ,{params : data} );

export function checkCertificateNo(val) {
  if(checkCode(val)) {
    var date = val.substring(6,14);
    if(checkCertificateNoDate(date)) {
      if(checkCertificateNoProv(val.substring(0,2))) {
        return true;
      }
    }
  }
  return false;
};
export function checkCertificateNoProv(val) {
  var pattern = /^[1-9][0-9]/;
  var provs = {11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古',21:'辽宁', 22:'吉林', 23:'黑龙江',31:'上海',32:'江苏',33:'浙江',34:'安徽',35:'福建',36:'江西',37:'山东',41:'河南',42:'湖北 ',43:'湖南',44:'广东',45:'广西',46:'海南',50:'重庆',51:'四川',52:'贵州',53:'云南',54:'*** ',61:'陕西',62:'甘肃',63:'青海',64:'宁夏',65:'***',71:'***',81:'***',82:'澳门'};
  if(pattern.test(val)) {
    if(provs[val]) {
      return true;
    }
  }
  return false;
};
export function checkCertificateNoDate(val) {
  var pattern = /^(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)$/;
  if(pattern.test(val)) {
    var year = val.substring(0, 4);
    var month = val.substring(4, 6);
    var date = val.substring(6, 8);
    var date2 = new Date(year+"-"+month+"-"+date);
    if(date2 && date2.getMonth() == (parseInt(month) - 1)) {
      return true;
    }
  }
  return false;
};
export function checkCode(val) {
  var p = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9X]$/;
  var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
  var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
  var code = val.substring(17);
  if(p.test(val)) {
    var sum = 0;
    for(var i=0;i<17;i++) {
      sum += val[i]*factor[i];
    }
    if(parity[sum % 11] == code.toUpperCase()) {
      return true;
    }
  }
  return false;
};






